Aujourd'hui, nous allons explorer en détail la fonction REPLACE dans Excel VBA.
Je suis là pour vous guider à travers les subtilités de cette fonction puissante.
La fonction REPLACE est utilisée pour remplacer une partie d'une chaîne de caractères par une autre chaîne.
C'est un outil incontournable pour les développeurs VBA souhaitant manipuler des textes de manière dynamique et efficace.
Voici la syntaxe de base de la fonction REPLACE :
Replace(expression, find, replace, [start, [count, [compare]]])
Paramètres
| Paramètre | Description |
|---|---|
| expression | Obligatoire. La chaîne de caractères contenant la sous-chaîne à remplacer. |
| find | Obligatoire. La sous-chaîne à rechercher dans l'expression. |
| replace | Obligatoire. La sous-chaîne qui remplacera chaque occurrence de find. |
| start | Facultatif. La position de départ pour la recherche (par défaut : 1). |
| count | Facultatif. Le nombre de remplacements à effectuer (par défaut : -1, remplace toutes les occurrences). |
| compare | Facultatif. Le type de comparaison à utiliser. |
Valeurs de retour
La fonction REPLACE renvoie une nouvelle chaîne de caractères dans laquelle toutes les occurrences de find sont remplacées par replace, à partir de la position start et jusqu'à ce que le nombre de remplacements spécifié par count soit atteint.
Types de Comparaison
| Constante | Valeur | Description |
|---|---|---|
| vbUseCompareOption | -1 | Utilise le paramètre de l'instruction Option Compare. |
| vbBinaryCompare | 0 | Effectue une comparaison binaire (sensible à la casse). |
| vbTextCompare | 1 | Effectue une comparaison textuelle (insensible à la casse). |
| vbDatabaseCompare | 2 | Comparaison basée sur les informations dans la base de données (Access uniquement). |
Êtes-vous prêt pour VBA ?
Mesurez votre niveau actuel grâce à notre quiz gratuit et découvrez vos prochaines étapes pour automatiser Excel.
Exemple d’utilisation FONCTION REPLACE VBA
Voyons quelques exemples concrets pour mieux comprendre l'utilisation de la fonction REPLACE, avec des explications détaillées pour chaque cas.
Exemple 1 : Remplacement d’un mot dans une phrase
Dans cet exemple, nous allons remplacer le mot "chat" par "chien" dans une phrase.
Sub RemplacementMot()
Dim phrase As String
phrase = "Le chat dort sur le canapé."
' Remplace "chat" par "chien"
MsgBox Replace(phrase, "chat", "chien") ' Renvoie : Le chien dort sur le canapé.
End Sub
Explication : la fonction Replace recherche la sous-chaîne "chat" dans la chaîne phrase et la remplace par "chien". Le résultat est affiché dans une boîte de message, montrant "Le chien dort sur le canapé."
Exemple 2 : Remplacement de caractères spéciaux
Dans cet exemple, nous allons remplacer tous les points-virgules par des virgules dans une liste de valeurs séparées par des points-virgules.
Sub RemplacementCaractereSpecial()
Dim liste As String
liste = "pomme;orange;banane;kiwi"
' Remplace ";" par ","
MsgBox Replace(liste, ";", ",") ' Renvoie : pomme,orange,banane,kiwi
End Sub
Explication : La fonction Replace remplace chaque point-virgule dans la chaîne liste par une virgule. Le résultat est une liste de fruits séparés par des virgules.
Exemple 3 : Remplacement conditionnel avec position de départ
Dans cet exemple, nous allons remplacer le mot "jour" par "soir" seulement après le 10ème caractère de la phrase.
Sub RemplacementConditionnel()
Dim phrase As String
phrase = "Bonjour, aujourd'hui est un beau jour."
' Remplace "jour" par "soir" après le 10ème caractère
MsgBox Replace(phrase, "jour", "soir", 10) ' Renvoie : Bonjour, aujourd'hui est un beau soir.
End Sub
Explication : En définissant le paramètre start à 10, la fonction Replace commence à rechercher "jour" après le 10ème caractère. Seule l'occurrence de "jour" après ce point est remplacée par "soir".
Exemple 4 : Limiter le nombre de remplacements
Ici, nous allons remplacer seulement les deux premières occurrences du caractère "i" par "I".
Sub LimiterNombreRemplacements()
Dim phrase As String
phrase = "Il fait froid ici, mais il y a du soleil."
' Remplace les deux premières occurrences de "i" par "I"
MsgBox Replace(phrase, "i", "I", 1, 2) ' Renvoie : Il faIt froId ici, mais il y a du soleil.
End Sub
Explication : En définissant count à 2, la fonction Replace remplace seulement les deux premières occurrences de "i" par "I". Le résultat est "Il faIt froId ici, mais il y a du soleil."
Exemple 5 : Remplacement insensible à la casse
Dans cet exemple, nous allons remplacer "VBA" par "Visual Basic" sans tenir compte de la casse.
Sub RemplacementInsensibleCasse()
Dim texte As String
texte = "Le VBA est puissant. Le vba permet de faire beaucoup de choses."
' Remplacement insensible à la casse de "VBA" par "Visual Basic"
MsgBox Replace(texte, "VBA", "Visual Basic", , , vbTextCompare) ' Renvoie : Le Visual Basic est puissant. Le Visual Basic permet de faire beaucoup de choses.
End Sub
Explication : En utilisant vbTextCompare pour le paramètre compare, la fonction Replace effectue une recherche insensible à la casse et remplace toutes les occurrences de "VBA" par "Visual Basic", peu importe leur casse originale.
🎁 Formation Excel VBA gratuite
Progressez étape par étape avec une vraie formation gratuite pensée pour les débutants comme pour les curieux. Au programme :
- Les bases du VBA
- Variables et boucles
- Création de formulaire
- Automatisation complète
Des leçons concrètes et directement applicables sur Excel.

Nos meilleures pratiques
Voici, d'après-moi, les meilleurs pratiques de la fonction REPLACE :
- Utiliser des valeurs de comparaison appropriées : choisissez
vbTextComparesi vous voulez une comparaison insensible à la casse, etvbBinaryComparesi la casse est importante. - Définir clairement le point de départ et la limite : utilisez les paramètres
startetcountpour contrôler précisément où et combien de fois le remplacement doit avoir lieu.
Les erreurs à éviter
Voici, d'après-moi, les erreurs à éviter de la fonction REPLACE :
- Oublier de spécifier le type de comparaison : si vous ne spécifiez pas
compare, la fonction utilisera la comparaison par défaut, ce qui pourrait ne pas correspondre à vos attentes. - Ne pas gérer les chaînes vides ou nulles : assurez-vous que les paramètres
expression,findetreplacene sont pas vides ou nulles pour éviter des comportements inattendus.
Automatiser vos fichiers avec une formation Excel VBA complète et certfiante
La meilleure façon de progresser sur VBA est de pratiquer sur des cas concrets. C’est pourquoi notre formation s’appuie sur vos besoins réels et vos documents professionnels.
Pendant la formation, vous allez :
- Travailler sur vos propres tableaux Excel
- Créer des macros utiles immédiatement
- Réaliser des exercices personnalisés
- Automatiser vos tâches quotidiennes
- Progresser avec les conseils d’un expert
Formation disponible à distance ou en présentiel, avec certification possible.
Les autres fonctions VBA TYPE
Fonction InStr VBA Excel
FONCTION CHR VBA Excel
Fonction FORMAT Excel VBA
Découvrez toutes les fonctions dans Excel VBA ici.






Félicitations ! Votre ebook Excel offert !
/ CPF